﻿using System;
using System.Collections.Generic;
using System.Text;

namespace FlashPay.Service.Interface
{
    using FlashPay.Entity;
    using FlashPay.Entity.Parameter;
    using FlashPay.Entity.Request.Transfer;
    using FlashPay.Entity.Response.Transfer;

    /// <summary>
    /// 中转卡业务接口
    /// </summary>
    /// <remarks>2018-10-01 immi 创建</remarks>
    public interface TransferService
    {

        /// <summary>
        /// 获取中转卡
        /// </summary>
        /// <param name="query">查看参数</param>
        DataGrid<TransferCardResponse> TransferCardPager(TransferCardQuery query);

        /// <summary>
        /// 获取中转卡记录
        /// </summary>
        /// <param name="query">查看参数</param>
        DataGrid<TransferCardRecordResponse> TransferCardRecordPager(TransferCardRecordQuery query);

        /// <summary>
        /// 转失败
        /// </summary>
        /// <returns></returns>
        JResult TurnFailed(TurnFailedReqeust reqeust);

        /// <summary>
        /// 转成功
        /// </summary>
        /// <returns></returns>
        JResult TurnSuccess(TurnSuccessReqeust reqeust);

        /// <summary>
        /// 重置
        /// </summary>
        /// <returns></returns>
        JResult Reset(ResetReqeust reqeust);

        /// <summary>
        /// 中转卡记录重新付款
        /// </summary>
        /// <param name="request"></param>
        JResult Repayment(RepaymentRequest request);

        /// <summary>
        /// 检查订单是否可以重新付款
        /// </summary>
        /// <param name="orderNo">订单号</param>
        /// <returns></returns>
        JResult<TransportRecordResponse> VerifyRepayment(long orderNo);
    }
}
